Multitasking 多工處理

多工處理允許使用者快速在不同應用之間切換,並在每個應用中執行任務。使用者期望裝置支援多工處理,若應用不支援,他們可能會認為應用存在問題。除了個別例外情況(如全屏模式的iPad應用和Apple Vision Pro的全空間模式應用),幾乎所有應用都需要與多工處理功能良好相容。
多工處理的裝置體驗
Apple Vision Pro:使用者可以在共享空間中同時執行多個應用,檢視並切換不同的視窗和虛擬螢幕。
iPhone:支援畫中畫(Picture in Picture)模式,使用者可以在視訊通話或觀看影片時繼續使用其他應用。

iPad:支援多個應用視窗同時開啟,使用者可以在不同應用視窗間進行互動。同一應用內也可開啟多個視窗,讓使用者同時檢視和操作多個視窗內容。


Apple TV:部分支援畫中畫功能,使用者可以在觀看電影或節目時繼續瀏覽其他內容。
Mac:多工處理是預設的使用者體驗,使用者常同時執行多個應用並在不同視窗之間切換,macOS透過視覺效果幫助使用者區分不同視窗狀態。
watchOS:支援快速在最近使用或收藏的應用間切換,但不允許同時開啟多個應用。
最佳實踐
暫停當前上下文並在返回時無縫恢復:當使用者切換到其他應用時,應用應自動暫停當前任務,並在使用者返回時恢復。例如,遊戲或媒體應用應確保使用者不會錯過任何內容。無論使用者何時發起多工切換,應用都應準備好儲存並恢復上下文。
平滑處理音訊中斷
當其他應用的音訊或系統通知打斷應用的音訊時,應用應做出適當的反應:
對於主要音訊中斷(如電話或音樂播放),應用應暫停音訊,直到中斷結束。
對於短暫中斷(如GPS導航提示),可以暫時降低音量或暫停,隨後恢復原來的音量或播放進度。
在後臺完成使用者啟動的任務:如果使用者在應用中啟動了任務(如上傳檔案或下載資料),即使他們切換到其他應用,也應在後臺完成任務,而不是中斷。
謹慎使用通知:當應用處於後臺時,可以傳送通知。例如,使用者可能會希望在任務完成時收到通知,但避免對非重要任務傳送不必要的通知。對於日常或次要任務,應讓使用者在返回應用時檢視進度,而非立即傳送通知。
iPadOS
iPadOS 提供多種多工處理視窗配置,支援不同的工作流。系統提供了多工控制,讓使用者可以切換不同的多工配置,並透過應用架(App Shelf)訪問同一應用中所有開啟的視窗。
多工處理視窗配置

Slide Over:在當前全屏視窗上懸浮開啟一個第二視窗。使用者可以更改 Slide Over 視窗的位置,或者將其隱藏在螢幕外,稍後再取回。使用者還可以在 Slide Over 中開啟多個視窗,形成堆疊。

Split View:並排顯示兩個視窗,使用者可以調整兩個視窗的大小,並同時與之互動。使用者還可以在 Split View 視窗外開啟第三個 Slide Over 視窗。

畫中畫(Picture in Picture):在浮動的、可移動的視窗中播放影片,使用者可以在使用其他應用時繼續觀看影片。

注意事項
應用無法控制多工配置:iPadOS 系統決定使用者選擇的多工處理配置,應用不會接收到任何指示或控制這些配置的資訊。
最佳實踐
適應不同的螢幕大小:應用應當能夠在不同的螢幕尺寸和多工配置中優雅地適應。例如,當應用處於 Split View 或 Slide Over 模式時,佈局應自動調整。開發者可以參考Multitasking on iPad獲取詳細指導。
支援靈活的佈局和恢復狀態:當使用者切換回應用時,確保恢復他們之前的工作狀態。例如,如果使用者正在處理文件或觀看影片,應用應在多工處理模式中保持原來的進度和狀態。
iPadOS
在 iPadOS 中,應用通常使用兩種型別的視窗來呈現內容:
主視窗(Primary Window):展示應用的完整層次結構,提供對所有物件和操作的訪問。

輔助視窗(Auxiliary Window):用於完成特定任務或處理某個應用區域,通常使用模態呈現,限制導航到其他應用區域,並在任務完成後關閉。

視窗呈現風格
在 iPadOS 15 及以後版本中,開發者可以為每個開啟的視窗指定不同的呈現風格,以增強視窗任務或內容的視覺表現。iPadOS 提供以下三種呈現風格:
突出風格(Prominent):模態呈現,暗化周圍區域並阻止與其他內容的互動,適合自包含的任務,如文件編輯。
標準風格(Standard):並排呈現,允許與其他視窗同時互動,適合類似任務或內容的並行處理。
自動風格(Automatic):系統根據應用上下文自動選擇最佳的呈現方式。
最佳實踐
選擇合適的視窗風格
使用突出風格呈現使用者可以在不離開其他部分的情況下完成的獨立任務。例如,文件編輯、圖片標註等。
使用標準風格來支援使用者同時處理多個任務或內容版本,例如 Safari 中支援同時瀏覽兩個視窗。
只在使用者明確請求時開啟新視窗:新視窗的開啟應由使用者明確操作觸發,例如透過點選應用架中的新增按鈕、App Exposé 或選單項,而不是自動生成。
確保主視窗支援應用的所有功能:每個主視窗都應能夠訪問應用的所有任務和功能,避免使用者在某個視窗中無法完成應用的全部操作。
保持視窗狀態一致性:當使用者返回視窗時,期望視窗保持他們離開時的狀態。應用應確保每個視窗的狀態被儲存並在返回時恢復。
支援手勢操作開啟新視窗:可以透過手勢(如捏合)將內容擴充套件為新視窗。例如,使用者在 Notes 中可以捏合手勢將筆記擴充套件為新視窗。手勢觸發的新視窗通常採用突出風格,讓視窗感覺像任務的自然延續。
提供選單項以支援新視窗開啟:可以在上下文選單中新增“在新視窗中開啟”選項,這對於 iPad 和使用 Mac Catalyst 的 Mac 上的應用非常實用。
避免為新視窗指定特定佈局:由於應用無法確定使用者的多工處理配置,避擴音供如“在分屏檢視中開啟”或“在前臺開啟”等選項,保持靈活性。
使用“視窗”一詞:系統統一使用“視窗”來指代應用視窗,因此在使用者介面中應避免使用其他術語(如“場景”),以免造成混淆。
visionOS
在 visionOS 中,共享空間(Shared Space)中一次只能有一個視窗處於啟用狀態。當使用者從一個視窗看向另一個視窗時,當前視線所聚焦的視窗會變為啟用狀態,而之前的視窗則變得半透明並沿 Z 軸後退。關閉共享空間中的應用視窗會將應用轉入後臺,但不會退出。
重要特性
自動暫停:當一個應用是“正在播放”(Now Playing)的應用時,關閉其視窗會自動暫停音訊播放。如果使用者希望恢復播放,可以在控制中心(Control Center)中操作,無需重新開啟視窗。
系統多工處理行為:visionOS 提供了系統級的多工處理行為,例如,當使用者從一個視窗移開視線時,系統會在該視窗上應用羽化遮罩,以清晰區分視窗的狀態變化。
最佳實踐
避免干擾系統的多工處理行為:當使用者的視線從一個視窗移開時,系統會自動應用視覺效果來區分視窗狀態。開發者應避免修改視窗邊緣的外觀,以免與系統提供的視覺反饋衝突。
播放影片時不應因視線移開而暫停:與 macOS 類似,visionOS 中的使用者期望視窗中啟動的影片播放在他們切換任務或檢視其他視窗時繼續播放。因此,確保影片播放不中斷。
準備好應對音訊的“靜音處理”(Duck):除非應用是當前的“正在播放”應用,否則當使用者的注意力轉移到其他應用時,應用的音訊可能會自動降低音量或靜音。開發者需要確保應用在這些情況下能夠平穩過渡。